package edu.friday.service;

import edu.friday.common.result.TreeSelect;
import edu.friday.model.SysMenu;
import edu.friday.model.vo.RouterVo;
import edu.friday.model.vo.SysMenuVO;
import edu.friday.model.vo.SysUserVO;

import java.util.List;
import java.util.Set;

public interface SysMenuService {
    Set<String> selectMenuPermsByUserId(Long userId);

    List<SysMenu> selectMenuList(SysMenuVO menu, Long userId);

    String checkMenuNameUnique(SysMenu menu);

    int insertMenu(SysMenu menu);

    int updateMenu(SysMenu menu);

    SysMenu selectMenuById(Long menuId);

    boolean hasChildByMenuId(Long menuId);

    boolean checkMenuExistRole(Long menuId);

    int deleteMenuById(Long menuId);

    List<TreeSelect> buildMenuTreeSelect(List<SysMenuVO> menuVOS);

    List<Long> selectMenuListByRoled(Long roleId);

    List<SysMenu> selectMenuList(Long userId);

    List<SysMenuVO> selectMenuTreeByUserId(Long userId);

   List<RouterVo> buildMenus(List<SysMenuVO> menus);
}
